#ifndef MULTI_OBJECT_TRACKER_H
#define MULTI_OBJECT_TRACKER_H
#include "multi_object_tracker/data_association/data_association.hpp"
#include "multi_object_tracker/tracker/model/tracker_base.hpp"
#include "utils/utils.hpp"
#include <list>
#include <map>
#include <memory>
#include <string>
#include <vector>
namespace perception
{
    namespace algorithm
    {
        class MultiObjectTracker
        {
        private:
            /* data */
            std::list<std::shared_ptr<Tracker>> list_tracker_;
            std::unique_ptr<DataAssociation> data_association_;

        public:
            MultiObjectTracker(/* args */);
            ~MultiObjectTracker();
            int Process(const std::vector<LidarObject> &input_objects_msg, const Localization &loc);
        };
    }
}

#endif